package main

import "fmt"

func main() {
	ch := make(chan int)
	go func() {
		for i := 0; i < 20; i++ {
			ch <- i
		}
		// 写端：写完以后主动关闭管道
		close(ch)
	}()

	// 读端使用无限循环读取数据，如果管道关闭，则停止循环
	for {
		if num, ok := <-ch; ok {
			fmt.Println("读到数据：", num)
		} else {
			fmt.Println("数据读取完毕")
			break
		}
	}
}
